﻿// ================================================================================================
// ICommonEditorCommand.cs
//
// Created: 2008.08.29, by Istvan Novak (DeepDiver)
// ================================================================================================
namespace VSXtra.Editors
{
  // ==================================================================================
  /// <summary>
  /// This interface allows implementor editor panes to declare and execute common
  /// commands supported by them.
  /// </summary>
  // ==================================================================================
  public interface ICommonEditorCommand
  {
    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "SelectAll" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsSelectAll { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "Copy" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsCopy { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "Cut" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsCut { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "Paste" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsPaste { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "Redo" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsRedo { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Get the flag indicating if "Undo" command is supported or not.
    /// </summary>
    // --------------------------------------------------------------------------------
    bool SupportsUndo { get; }

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "SelectAll" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoSelectAll();

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "Copy" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoCopy();

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "Cut" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoCut();

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "Paste" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoPaste();

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "Redo" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoRedo();

    // --------------------------------------------------------------------------------
    /// <summary>
    /// Executes the "Undo" command.
    /// </summary>
    // --------------------------------------------------------------------------------
    void DoUndo();
  }
}
